home *** CD-ROM | disk | FTP | other *** search
/ Aminet 3 / Aminet 3 - July 1994.iso / Aminet / util / shell / csh537f.lha / tips.doc < prev   
Encoding:
Text File  |  1993-07-15  |  7.0 KB  |  212 lines

  1. Quelques bonnes trucs et astuces que j'ai rassemblé:
  2.  
  3.  
  4.     EDITION
  5.  
  6.  
  7. Les situations très courantes:
  8. $ mkdir documents
  9. $ cd documents
  10. peut être abrégée par:
  11. $ mk documents
  12. $ [CTRL-T]              (insère tout sauf le premier mot de la ligne
  13.  
  14.  
  15. Aussi très courant:
  16. $ mv document document1
  17. $mv [CTRL-P]1
  18. La fonction CTRL-P duplique le mot précédent sur la ligne de commande
  19.  
  20.  
  21. Vous pourriez vous être demandé en quoi CTRL-N (laisse la ligne courante)
  22. peut vous être utile.
  23. Supposons, par exemple, que vous avez tapé
  24. $ rm dh1:graphics/lo-res/gorilla
  25. quand il vous vient à l'esprit que vous préfereriez garder une copie de cette
  26. image sur disquette. Plusieurs effaceraient la ligne de commande. Comme vous
  27. avez de la classe, vous faîtes ce qui suit:
  28. $ [CTRL-N]              (laisse la ligne de commande tranquile)
  29. $ co [CTRL-T] df0:
  30. $ [Flèche-Haute][Flèche-Haute]  (reprend la lignede commande que vous aviez
  31.                                 laissé)
  32.  
  33.  
  34. Au cas où vous ne sauriez pas ce qu'est la complétion sur l'historique:
  35. $ search *.c *.h makefile toto
  36. $ ram:
  37. $ dir
  38. $ rm tmpfile
  39. Maintenant si vous voulez répéter la commande search, entrez
  40. $ se[Shift-Flèche-Haute]
  41. ce qui rapelle la dernière commande commençant par 'se'.
  42.  
  43.  
  44. Si jamais vous cyclez trop loing en utilisant la touche TAB, en dépassant 
  45. l'entrée que vous vouliez, vous pouvez revenir en arrière d'une entrée en 
  46. utilisant CTRL-U [undo]. La même chose s'applique si vous aviez entré une 
  47. abréviation, pressé TAB mais vu que l'abbréviation était trop courte.
  48.  
  49.  
  50. Si vous voulez effacer le fichier
  51. $ rm dh2:comm/uucp/mail/junk/409
  52. et que vous êtes loin de ce répertoire, entrez
  53. $ rm ju[ESC-c]409          (entre le chemin correspondant à cd ju)
  54.  
  55.  
  56. La même fonction est aussi utilisable pour 'cd'. Supposons que vous avez
  57. plusieurs répertoires 'junk':
  58. $ ju[ESC-c][CTRL-R][CTRL-R][CTRL-R]
  59. Comme ceci vous cyclerez à travers les répertoires junk. Quand vous aurez le
  60. bon, appuyez sur enter.
  61.  
  62.  
  63. Supposons qu'il y a les fichiers comm1.c, comm2.c, et comm3.c avec leurs
  64. fichiers .o correspondants. Vous voulez comm3.c:
  65. $ co[Shift-Tab]1[Tab]
  66. Bien sûr ceci est plus utile surdes noms de fichiers plus longs.
  67.  
  68.  
  69. Vous pouvez compléter un nom de fichier par tab sur n'importe quel motif,
  70. pas seulement les abréviations. Supposons que vous voulez effacer tous les
  71. fichiers .c dans le répertoire courant sauf le dernier:
  72. $ rm *.c[ESC-Tab][CTRL-W]
  73. De plus, vous pouvez voir tous les fichiers encore une fois avant de les
  74. effacer.
  75.  
  76.  
  77. Ensuite: Vous avez entré:
  78. $ dir
  79. $ foreach i ( *.c ) "e >>ram:temp $i
  80. et vous voudriez effectuer les mêmes trois actions à nouveau, entrez:
  81. $ [Flèche-Haute][Flèche-Haute][Flèche-Haute][ESC-Return][CTRL-R][CTRL-R]
  82.  
  83.  
  84. Je sais que l'édition n'est pas très conviviale. C'est parce qu'il est assez
  85. difficile et dangereux de prendre des codes raw sur la console, et il est
  86. impossible de prendre ces codes depuis un terminal VT200. Ainsi j'ai me
  87. débrouiller avec des combinaisons de CTRL et ESC. Une fois que vous les avez
  88. appris (certains d'entre eux sont similaire à EMACS), vous économisez
  89. beaucoup de frappe.
  90.  
  91.  
  92.     COMMANDES
  93.  
  94.  
  95. Mon conseil ici est très clair: Utilisez les alias, les alias, les alias.
  96. Pour être capable de les créer aussi vite que possible, créez un alias (par
  97. ex. 'le') qui édite votre fichier de login, plus un autre (par ex. 'lx'),
  98. qui le réexécute. Mon login ne contient quasiment que des alias, tout le
  99. reste, je l'ai mis dans 'firstlogin.sh'.
  100.  
  101.  
  102. Si vous n'aimez pas mes options par défaut pour une commande, vous pouvez
  103. en ajouter en utilisant un alias:
  104. $ alias dir "dir -q
  105. A partir de là, les blocs ne seront plus affichés dans 'dir'.
  106.  
  107.  
  108. Si vous alias ont des arguments, par ex.:
  109. $ alias sc "search *.c
  110. des problèmes surgissent lorsque vous essayez de spécifier des options, par
  111. exemple la sensibilité aux majuscules:
  112. $ sc -c "bonjour tout le monde
  113. Ceci ne marchera evidemment pas. C'est ce que résoud @pickopts:
  114. $ alias sc "%a serach @pickopts( $a ) *.c @pickargs( $a )
  115.  
  116.  
  117. Une fois que vous avez des alias, il est utile de les garder triés. Vous
  118. pourriez aussi les documenter: créez un fichier 'alias.doc', et faites
  119. $ set _man alias.doc csh.doc
  120. De cette façon vous pouvez les documenter dans un fichier séparé.
  121.  
  122. Si vous vouliez créer des alias qui acceptent des arguments, vous pouvez
  123. les implémenter en utilisant 'if -o'.
  124. $ alias bon "%a if -o v $a;echo -n "tres ";endif;echo bon boulot, @arg( $a )
  125. $ bon olivier       --> bon boulot, olivier
  126. $ bon -v olivier    --> tres bon boulot, olivier
  127.  
  128. 'cat' peut être utilisé pour créer de petits fichiers de texte:
  129. $ cat >monfichier
  130. bonjour
  131. [CTRL-\]
  132. La combinaison de touches CTRL-\ crée un caractère de fin de fichier
  133.  
  134.  
  135.     FONCTIONS
  136.  
  137. @age est très utile pour archiver les scripts:
  138. $ foreach i ( * ) "if @age( $i ) > 30;cp -m $i backup:;endif
  139.  
  140.  
  141. @clinum peut être utilisé pour rendre 'break' et 'pri' plus flexibles:
  142. $ alias break "%a break @clinum( $a )
  143. Maintenant vous pouvez faire, par exemple, 'break cc'. Les numéros de Cli
  144. sont toujours autorisés.
  145.  
  146. @complete simule l'effet de la complétion des noms de fichiers par TAB. De
  147. cette façon, vous n'avez plus besoin de presser TAB pour cela:
  148. $ alias edit "%a ced @complete( $a * )
  149.  
  150.  
  151. @confirm peut être uitilisé pour un 'rm' sûr:
  152. $ alias rm "%a rm @confirm( $a )
  153.  
  154.  
  155. @howmany est utile au lancement:
  156. $ if $howmany = 1;window -l;endif
  157.  
  158.  
  159. @intersect, @union et @without conviennent bien à de nombreuses applications
  160. Si vous stockez, par exemple, tous les fichiers d'un de vos amis, dans la
  161. variable $him, (il peut faire un 'dir -np .../ >temp', vous faites alors un
  162. 'readf him <temp'), et vos fichiers dans $me, alors vous pouvez savoir ce
  163. qu'il a et pas vous en utilisant
  164. $ echo @without( $him , $me )
  165. Pour ignorer des noms de chemins différents, utilisez
  166. $ set him @basename( $ him )
  167. Si vous avez les noms de fichiers sans les chemins, vous pouvez retrouver le
  168. chemin en 'search'ant le fichier temp.
  169.  
  170.  
  171. @opt et @arg sont utilisés chaque fois que vous avez qui spécifie déjà des
  172. arguments, mais autorise l'utilisateur à spécifier des options additionelles.
  173. $ alias sc "%a search @opt( $a ) *.c @arg( $a )
  174.  
  175.  
  176. @volume peut être utilisé pour tester si il y a un disque dans un certain
  177. lecteur. Il supprimera les requesters et retourne une chaîne vide s'il n'y
  178. a pas de disque.
  179.  
  180.  
  181.     VARIABLES
  182.  
  183.  
  184. $_except peut être rendue locale. Dans ce cas vous avez un traitement
  185. d'erreur spécial pour l'alias ou le fichier script courant.
  186.  
  187.  
  188. $_man peut contenir les noms de plus d'un fichier .doc. De cette façon, vous
  189. pourriez ajouter de la documentation pour vos propres alias.
  190.  
  191.  
  192. Lorsque vous travaillez avec des gros fichiers et les pipes, vous pourriez
  193. souhaiter mettre $_pipe vers un répertoire sur votre disque dur.
  194.  
  195.  
  196.     INTERPRETEUR
  197.  
  198.  
  199. Si vous avez besoin d'ajouter une chaîne à une variable, vous pouvez le faire
  200. de cette façon:
  201. $ set toto truc
  202. $ echo $foo""bidule  --> trucbidule
  203. Le "" n'est pas nécessaire si le premier caractère de la chaîne à être ajoutée 
  204. n'est ni une lettre ni un chiffre ni un _.
  205.  
  206. Pour être sûr qu'aucune commande interne n'est exécutée, mettez la première 
  207. lettre de votre commande en majuscule:
  208. $ Dir ram: ALL
  209.  
  210. Pour ne pas tenir compte des alias existants sur une commande, entrez:
  211. $ alias echo "xxxxxx
  212. $ \echo bonjour   -->  bonjour